package com.ant.storage.pojo;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * <p>
 * 
 * </p>
 *
 * @author melon
 * @since 2023-12-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bid_information")
@ApiModel(value="BidInformation对象", description="")
public class BidInformation implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "城市")
    @TableField("city_id")
    private Integer cityId;

    @ApiModelProperty(value = "分公司")
    @TableField("company_id")
//    @NotNull(message = "请选择分公司")
    private Integer companyId;

    @ApiModelProperty(value = "编号")
    @TableField("contract_number")
    private String contractNumber;

    @ApiModelProperty(value = "项目名称")
    @TableField("contract_name")
//    @NotBlank(message = "请填写项目名称")
    private String contractName;

    @ApiModelProperty(value = "服务内容")
    @TableField("service_content")
//    @NotBlank(message = "请填写服务内容")
    private String serviceContent;

    @ApiModelProperty(value = "行业类型")
    @TableField("industry_type")
    private String industryType;

    @ApiModelProperty(value = "信息来源")
    @TableField("information_sources")
    private String informationSources;

    @ApiModelProperty(value = "客户单位")
    @TableField("customer_unit")
    private String customerUnit;

    @ApiModelProperty(value = "客户姓名")
    @TableField("customer_name")
    private String customerName;

    @ApiModelProperty(value = "联系方式")
    private String phone;

    @ApiModelProperty(value = "代理机构")
    private String agency;


    @ApiModelProperty(value = "搜索人")
    @TableField("search_by")
    private String searchBy;

    @ApiModelProperty(value = "接收人")
    private String recipient;

    @ApiModelProperty(value = "授权人")
    private String investor;

    @ApiModelProperty(value = "推送时间")
    @TableField("push_time")
    private Date pushTime;

    @ApiModelProperty(value = "项目预算")
    @TableField("project_budget")
    private BigDecimal projectBudget;

    @ApiModelProperty(value = "是否报名")
    @TableField("is_enroll")
    private Integer isEnroll;

    @ApiModelProperty(value = "报名费")
    @TableField("registration_fee")
    private BigDecimal registrationFee;

    @ApiModelProperty(value = "开始日期")
    @TableField("enroll_start_time")
    private Date enrollStartTime;

    @ApiModelProperty(value = "截止日期")
    @TableField("enroll_end_time")
    private Date enrollEndTime;

    @ApiModelProperty(value = "是否投标")
    @TableField("is_bid")
    private Integer isBid;

    @ApiModelProperty(value = "投标截止日期")
    @TableField("bid_end_time")
    private Date bidEndTime;

    @ApiModelProperty(value = "开标日期")
    @TableField("bid_start_time")
    private Date bidStartTime;

    @ApiModelProperty(value = "评标方法")
    @TableField("bid_method")
    private Integer bidMethod;

    @ApiModelProperty(value = "状态结果")
    private Integer status;

    @ApiModelProperty(value = "失败原因")
    @TableField("failure_reason")
    private Integer failureReason;

    @ApiModelProperty(value = "失败原因说明")
    private String reason;

    @ApiModelProperty(value = "中标公告")
    @TableField("bid_announcement")
    private String bidAnnouncement;

    @ApiModelProperty(value = "中标单位")
    @TableField("winning_bidder")
    private String winningBidder;

    @ApiModelProperty(value = "中标金额")
    @TableField("bid_winning_amount")
    private BigDecimal bidWinningAmount;

    @ApiModelProperty(value = "制标人")
    @TableField("standard_maker")
    private String standardMaker;

    @ApiModelProperty(value = "运作时间")
    @TableField("operation_time")
    private Date operationTime;

    @ApiModelProperty(value = "打印费")
    @TableField("printing_fee")
    private BigDecimal printingFee;

    @ApiModelProperty(value = "投标保证金")
    @TableField("bid_security")
    private BigDecimal bidSecurity;

    @ApiModelProperty(value = "履约保证")
    @TableField("performance_bond")
    private BigDecimal performanceBond;

    @ApiModelProperty(value = "中标服务费")
    @TableField("service_fee")
    private BigDecimal serviceFee;

    @ApiModelProperty(value = "平台服务费")
    @TableField("service_fees")
    private BigDecimal serviceFees;

    @ApiModelProperty(value = "CA办理费")
    @TableField("processing_fee")
    private BigDecimal processingFee;

    @ApiModelProperty(value = "招标文件")
    @TableField("bid_document")
    private String bidDocument;

    @ApiModelProperty(value = "投标文件")
    @TableField("bid_annex")
    private String bidAnnex;

    @ApiModelProperty(value = "跟踪详情")
    @TableField("tracking_details")
    private String trackingDetails;

    @ApiModelProperty(value = "备注")
    private String notes;

    @ApiModelProperty(value = "创建人")
    @TableField("create_by")
    private String createBy;

    @ApiModelProperty(value = "创建时间")
    @TableField("creation_time")
    private Date creationTime;

    @ApiModelProperty(value = "是否删除")
    @TableField("is_delete")
    private Integer isDelete;


    @ApiModelProperty(value = "单位信息")
    @TableField(exist = false)
    private List<BidCompany> companyList;


    @ApiModelProperty(value = "招标文件")
    @TableField(exist = false)
    private List<PurchaserRecordImg> bidDocumentList;

    @ApiModelProperty(value = "投标文件")
    @TableField(exist = false)
    private List<PurchaserRecordImg> bidAnnexList;


    @ApiModelProperty(value = "中标公告")
    @TableField(exist = false)
    private List<PurchaserRecordImg> bidAnnouncementList;
}
